package eu.telecombretagne.rsm.base.event.manager;

import eu.telecombretagne.rsm.base.event.Event;

public class EventParameters {
	
	private Class<? extends Event> eventType;
	
	private Double probability;
	private Long delay;
	
	private Boolean effects;
	private Boolean duplication;
	private Boolean effectAlreadyUsed = false;
	
	/**
	 * Gets an event type.
	 * @return Returns a class extending the <i>Event</i>.
	 */
	public Class<? extends Event> getEventType() {
		return eventType;
	}
	
	/**
	 * Sets an event type.
	 * @param eventType An event type class.
	 */
	public void setEventType(Class<? extends Event> eventType) {
		this.eventType = eventType;
	}
	
	/**
	 * Gets a probability value.
	 * @return A double value of a probability.
	 */
	public Double getProbability() {
		return probability;
	}
	
	/**
	 * Sets a probability value.
	 * @param probability A double value of a probability.
	 */
	public void setProbability(Double probability) {
		this.probability = probability;
	}
	
	/**
	 * Gets a delay.
	 * @return Returns a long value of a delay.
	 */
	public Long getDelay() {
		return delay;
	}
	
	/**
	 * Sets a delay.
	 * @param delay A long value of a delay.
	 */
	public void setDelay(Long delay) {
		this.delay = delay;
	}
	
	/**
	 * Gets effects boolean.
	 * @return Returns <i>true</i>, if effects are enabled. Otherwise <i>false</i> is returned.
	 */
	public Boolean getEffects() {
		return effects;
	}
	
	/**
	 * Sets a boolean value of effects.
	 * @param effects If effects are enabled, should be set to <i>true</i>. Otherwise the argument has to be <i>false</i>.
	 */
	public void setEffects(Boolean effects) {
		this.effects = effects;
	}
	
	/**
	 * Gets a boolean value of duplication effect.
	 * @return Returns <i>true</i>, if duplication is enabled. Otherwise <i>false</i> is returned.
	 */
	public Boolean getDuplication() {
		return duplication;
	}
	
	/**
	 * Sets a boolean value of a duplication.
	 * @param duplication If a duplication is enabled, should be set to <i>true</i>. Otherwise the argument has to be <i>false</i>.
	 */
	public void setDuplication(Boolean duplication) {
		this.duplication = duplication;
	}
	
	/**
	 * Gets a boolean value of already used effects.
	 * @return Returns <i>true</i>, if effects are already used. Otherwise <i>false</i> is returned.
	 */
	public Boolean getEffectAlreadyUsed() {
		return effectAlreadyUsed;
	}
	
	/**
	 * Sets a boolean value of already used effects.
	 * @param effectAlreadyUsed If effects are already used, should be set to <i>true</i>. Otherwise the argument has to be <i>false</i>.
	 */
	public void setEffectAlreadyUsed(Boolean effectAlreadyUsed) {
		this.effectAlreadyUsed = effectAlreadyUsed;
	}
}